package com.cnap.db.mapper;

import com.cnap.db.entity.IntelligentHistoryPO;
import com.cnap.model.intelligent.IntelligentClusterInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 集群信息mapper
 *
 * @author xc
 **/
@Mapper
@Component
public interface IntelligentHistoryMapper {


    /**
     * 插入信息
     *
     * @param historyPO 参数
     * @return 结果
     */
    int insertHistory(@Param("history") IntelligentHistoryPO historyPO);

    /**
     * 根据微服务id查询
     *
     * @param svcId 微服务id
     * @return 结果
     */
    List<IntelligentHistoryPO> selectBySvcId(@Param("svcId") String svcId);

    /**
     * 根据id查询
     *
     * @param id id
     * @return 结果
     */
    IntelligentHistoryPO selectById(@Param("id") String id);

    /**
     * 根据id删除
     *
     * @param id id
     * @return 结果
     */
    int deleteById(@Param("id") String id);

    /**
     * 根据微服务id删除
     *
     * @param svcId 微服务id
     * @return 结果
     */
    int deleteBySvcId(@Param("svcId") String svcId);

    /**
     * 更优化建议处的集群信息（更新时间最新的）
     *
     * @param svcId   微服务id
     * @param suggest 优化建议
     * @return 结果
     */
    int updateSuggestClusterAndStatusBySvcIdWithNewest(@Param("svcId") String svcId, @Param("suggest") List<IntelligentClusterInfo> suggest);
}
